package com.jwsoft.manager.common.vo.eduStudentEnrollPre;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.bifang.assistant.common.vo.BaseVO;
import com.bifang.engine.assistant.core.enums.BoolEnum;
import com.bifang.module.base.common.vo.oplog.ModifiedFieldVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jwsoft.manager.common.vo.eduAppointStudent.EduAppointStudentVO;
import com.jwsoft.manager.common.vo.eduCompany.EduCompanyVO;
import com.jwsoft.manager.common.vo.eduHouse.EduHouseVO;
import com.jwsoft.manager.common.vo.eduHousehold.EduHouseholdVO;
import com.jwsoft.manager.common.vo.eduLivePlace.EduLivePlaceVO;
import com.jwsoft.manager.common.vo.eduNetsign.EduNetsignVO;
import com.jwsoft.manager.common.vo.eduPrivateAppointStudent.EduPrivateAppointStudentVO;
import com.jwsoft.manager.common.vo.eduSchool.SchoolDistrictVO;
import com.jwsoft.manager.common.vo.eduSocialSecurity.EduSocialSecurityVO;
import com.jwsoft.manager.common.vo.eduStudentEnrollBefore.EduStudentEnrollBeforeVO;
import com.jwsoft.manager.common.vo.eduStudentEnrollBefore.HouseSchoolVO;
import com.jwsoft.manager.common.vo.eduStudentEnrollBefore.HouseholdSchoolVO;
import com.jwsoft.manager.common.vo.eduStudentEnrollFamily.EduStudentEnrollFamilyVO;
import com.jwsoft.manager.common.vo.eduStudentStatus.EduStudentStatusVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 预采集表VO
 *
 * @author wangtao
 * @since 2022-11-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "EduStudentEnrollPreVO", title = "预采集表VO", description = "预采集表实体类")
public class EduStudentEnrollPreVO extends BaseVO {

    @Schema(name = "busiEnrollPreId", title = "主键")
    private Long busiEnrollPreId;

    @Schema(name = "studentEnrollPreId", title = "主键")
    private String studentEnrollPreId;

    @Schema(name = "batchNo", title = "批次号")
    private Long batchNo;

    @Schema(name = "personId", title = "学生人员id")
    private Long personId;

    @Schema(name = "idcard", title = "学生身份证")
    private String idcard;

    @Schema(name = "fullName", title = "学生姓名")
    private String fullName;

    @Schema(name = "cardType", title = "学生证件类型")
    private String cardType;

    @Schema(name = "cardTypeName", title = "学生证件类型")
    private String cardTypeName;

    @Schema(name = "birthYmd", title = "出生日期")
    private String birthYmd;

    @Schema(name = "sex", title = "性别")
    private String sex;

    @Schema(name = "age", title = "学生年龄")
    private Integer age;

    @Schema(name = "submitterId", title = "提交人员userId")
    private String submitterId;

    @Schema(name = "submitterName", title = "提交人员姓名")
    private String submitterName;

    @Schema(name = "telphone", title = "提交人员联系电话")
    private String telphone;

    @Schema(name = "remarks", title = "备注")
    private String remarks;

    @Schema(name = "address", title = "现居住地址")
    private String address;

    @Schema(name = "householdPlace", title = "户籍地")
    private String householdPlace;

    @Schema(name = "enrollPreType", title = "预采集类型")
    private String enrollPreType;

    @Schema(name = "orgId", title = "数据采集所属组织")
    private String orgId;

    @Schema(name = "orgName", title = "数据采集单位名称")
    private String orgName;

    @Schema(name = "cjSchoolName", title = "采集学校名称")
    private String cjSchoolName;

    @Schema(name = "schoolId", title = "拟报名学校id")
    private String schoolId;

    @Schema(name = "shortName", title = "意向学校简称")
    private String shortName;

    @Schema(name = "schoolName", title = "意向学校")
    private String schoolName;

    @Schema(name = "schoolNature", title = "学校性质0.公办 1.民办")
    private String schoolNature;

    @Schema(name = "schoolCategory", title = "就读学段")
    private String schoolCategory;

    @Schema(name = "type", title = "数据类型(insert,update)")
    private String type;

    @Schema(name = "year", title = "年份")
    private Integer year;
    @Schema(name = "fileInfo", title = "材料信息")
    private String fileInfo;
    @Schema(name = "houseSyncFlag", title = "房产同步状态")
    private String houseSyncFlag;

    @Schema(name = "houseSyncRemark", title = "房产同步备注")
    private String houseSyncRemark;

    @Schema(name = "householdSyncFlag", title = "户籍同步状态")
    private String householdSyncFlag;

    @Schema(name = "householdSyncRemark", title = "户籍同步备注")
    private String householdSyncRemark;

    @Schema(name = "netsignSyncFlag", title = "网签同步状态")
    private String netsignSyncFlag;

    @Schema(name = "netsignSyncRemark", title = "网签同步备注")
    private String netsignSyncRemark;

    @Schema(name = "cbSyncFlag", title = "参保同步状态")
    private String cbSyncFlag;

    @Schema(name = "cbSyncRemark", title = "参保同步备注")
    private String cbSyncRemark;

    @Schema(name = "qySyncFlag", title = "开办企业同步状态")
    private String qySyncFlag;

    @Schema(name = "qySyncRemark", title = "开办企业同步备注")
    private String qySyncRemark;

    @Schema(name = "jzzSyncFlag", title = "居住证同步状态")
    private String jzzSyncFlag;

    @Schema(name = "jzzSyncRemark", title = "居住证同步备注")
    private String jzzSyncRemark;

    @Schema(name = "beforeFlag", title = "预报名同步标识")
    private String beforeFlag;

    @Schema(name = "beforeRemark", title = "预报名同步备注")
    private String beforeRemark;

    @Schema(name = "calculateFlag", title = "预测同步标识")
    private String calculateFlag;

    @Schema(name = "calculateRemark", title = "预测同步备注")
    private String calculateRemark;

    @Schema(name = "areaCode", title = "所属统筹区/行政区")
    private String areaCode;

    @Schema(name = "areaName", title = "统筹区名称")
    private String areaName;

    @Schema(name = "authStatus", title = "审核状态")
    private String authStatus;

    @Schema(name = "authStatusName", title = "0.待审核1.已审核 其他.不可用")
    private String authStatusName;

    @Schema(name = "authRemarks", title = "审核意见")
    private String authRemarks;

    @Schema(name = "authTime", title = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date authTime;

    @Schema(name = "authUserId", title = "审核人")
    private String authUserId;

    @Schema(name = "familyFlag", title = "出生证比对状态")
    private String familyFlag;

    @Schema(name = "familyRemark", title = "出生证比对备注")
    private String familyRemark;

    @Schema(name = "createName", title = "创建人")
    private String createName;

    @Schema(name = "createTime", title = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @Schema(name = "relationshipType", title = "与学生的关系类型")
    private String relationshipType;

    @Schema(name = "relationshipName", title = "监护人姓名")
    private String relationshipName;

    @Schema(name = "relationshipIdcard", title = "监护人身份证")
    private String relationshipIdcard;

    @Schema(name = "relationshipCardType", title = "监护人证件类型")
    private String relationshipCardType;

    @Schema(name = "work", title = "监护人工作单位")
    private String work;

    @Schema(name = "cellphone", title = "监护人联系手机")
    private String cellphone;

    @Schema(name = "fatherName", title = "父亲姓名")
    private String fatherName;

    @Schema(name = "fatherId", title = "父亲id")
    private Long fatherId;

    @Schema(name = "fatherCardType", title = "父亲证件类型")
    private String fatherCardType;

    @Schema(name = "fatherIdcard", title = "父亲身份证")
    private String fatherIdcard;

    @Schema(name = "fatherWork", title = "父亲工作单位")
    private String fatherWork;

    @Schema(name = "fatherCellphone", title = "父亲联系手机")
    private String fatherCellphone;

    @Schema(name = "motherName", title = "母亲姓名")
    private String motherName;

    @Schema(name = "motherId", title = "母亲id")
    private Long motherId;

    @Schema(name = "motherCardType", title = "母亲证件类型")
    private String motherCardType;

    @Schema(name = "motherIdcard", title = "母亲身份证")
    private String motherIdcard;

    @Schema(name = "motherWork", title = "父亲工作单位")
    private String motherWork;

    @Schema(name = "motherCellphone", title = "母亲联系手机")
    private String motherCellphone;

    @Schema(name = "saveType", title = "保存类型")
    private String saveType;

    @Schema(name = "dataType", title = "数据类型")
    private String dataType;

    @Schema(name = "enrollBeforeList", title = "预报名信息")
    private List<EduStudentEnrollBeforeVO> enrollBeforeList;
    @Schema(name = "enrollBeforeList", title = "预报名信息选择的学校信息")
    private List<StudentEnrollChooseSchoolVO> chooseSchoolList;
    @Schema(name = "family", title = "家庭成员信息")
    private List<EduStudentEnrollFamilyVO> familyList;
    @Schema(name = "hasHouse", title = "是否存在有效房产")
    private Boolean hasHouse;
    @Schema(name = "houseList", title = "房产信息")
    private List<EduHouseVO> houseList;
    @Schema(name = "houseTstdList", title = "特殊通道房产信息")
    private List<EduHouseVO> houseTstdList;
    @Schema(name = "householdId", title = "户籍地id")
    private String householdId;
    @Schema(name = "fmFlag", title = "孩子户口本与户主是否父母")
    private Boolean fmFlag;
    @Schema(name = "houseAddress", title = "房产地址")
    private String houseAddress;
    @Schema(name = "street", title = "户籍所属街道")
    private String street;
    @Schema(name = "houseHoldVO", title = "本系统区域内户籍信息")
    private EduHouseholdVO houseHoldVO;
    @Schema(name = "houseHoldVO", title = "全省户籍信息")
    private EduHouseholdVO houseHoldVOAll;
    @Schema(name = "householdAddress", title = "户籍地址")
    private String householdAddress;
    @Schema(name = "relation", title = "与户主关系")
    private String relation;
    @Schema(name = "accountType", title = "户口类型")
    private String accountType;
    @Schema(name = "householdHandleStatus", title = "户籍学区是否申诉状态")
    private String householdHandleStatus;

    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @Schema(name = "householdTime", title = "户籍地获取时间")
    private Date householdTime;

    @Schema(name = "schoolDistrictVOList", title = "学区")
    private List<SchoolDistrictVO> schoolDistrictVOList;
    @Schema(name = "school", title = "学校信息")
    private String school;
    @Schema(name = "appointFlag", title = "是否城区E类人员 0 否 1 是")
    private String appointFlag;
    @Schema(name = "privateAppointFlag", title = "是否民办直升班 0 否 1 是")
    private String privateAppointFlag;
    @Schema(name = "schoolCategoryName", title = "学段中文")
    private String schoolCategoryName;

    @Schema(name = "预报名主键")
    private Long enrollBeforeId;
    @Schema(name = "招生大类")
    private String configTypeName;
    @Schema(name = "招生类别")
    private String configName;
    @Schema(name = "报名状态：0，待审核 1，待录取 2，已录取 3,业务不录取 4,系统不录取")
    private String enrollStatus;
    @Schema(name = "是否已报名")
    private Boolean bmFlag;
    @Schema(name = "是否有有效报名记录:0 没有报名 1 有报名 2无需校验")
    private String hasBmType;
    @Schema(name = "是否已模拟报名")
    private Boolean mnEnrollFlag;
    @Schema(name = "是否符合报名条件")
    private Boolean canEnrollFlag;
    @Schema(name = "单独直升班报名")
    private Boolean zsbEnrollFlag;
    @Schema(name = "是否可一键报名")
    private Boolean yjbmFlag;
    @Schema(name = "参保信息")
    private List<EduSocialSecurityVO> cbList;
    @Schema(name = "开办企业信息")
    private List<EduCompanyVO> qyList;
    @Schema(name = "居住证信息")
    private List<EduLivePlaceVO> jzzList;
     @Schema(name = "网签信息")
    private List<EduNetsignVO> wqList;
     @Schema(name = "学籍信息")
    private EduStudentStatusVO studentStatusVO;
     @Schema(name = "直升班信息")
    private EduPrivateAppointStudentVO zsbVO;
     @Schema(name = "城区E信息")
    private List<EduAppointStudentVO> cqeList;
    @Schema(name = "managerFlag",title="是否管理员操作")
    private Boolean managerFlag;
    @Schema(name = "是否模拟报名")
    private Boolean mnFlag;
    @Schema(name = "是否第一次报名期")
    private Boolean enrollFlag;
    @Schema(name = "是否补报期第二批")
    private Boolean bbFlag;
    @Schema(name = "是否补报期第二批第二轮")
    private Boolean bbTwoFlag;
    @Schema(name = "是否开启二轮补报")
    private Boolean bbTwoEnable;
    @Schema(name = "是否抢报期第三批")
    private Boolean qbFlag;
    @Schema(title = "审核时变动字段信息")
    List<ModifiedFieldVO> changeFieldList;
    @Schema(name="10:管理员",title = "")
    private String userType;
    @Schema(name = "followingFlag",title="是否非随迁子女 0 否 1 是")
    private String followingFlag;

    @Schema(name = "consistent_flag", description = "是否房户一致 0 未比对 1比对通过 2比对不通过")
    private String consistentFlag;

    @Schema(name = "consistent_type", description = "房户一致比对类型：1 大数据比对 2 人工核对")
    private String consistentType;

    @Schema(name = "consistent_remarks", description = "一致情况说明")
    private String consistentRemarks;

    @Schema(name = "consistent_user_id", description = "房产一致人工操作人")
    private String consistentUserId;

    @Schema(name = "consistent_time", description = "房产一致性处理时间")
    private String consistentTime;

    @Schema(name = "house_id", description = "房产id")
    private String houseId;

    @Schema(name = "aborigine_flag", description = "是否原住民")
    private String aborigineFlag;

    @Schema(name = "familyType", description = "家庭关系比对类型1 大数据比对 2 人工核对")
    private String familyType;
    @Schema(name = "serviceAreaFlag", title = "是否服务区 0 否 1是")
    private String serviceAreaFlag;
    @Schema(name = "agentEnrollFlag", title = "是否可代理报名 0 否 1是，代理报名则可使用父母双方的房产等信息")
    private String agentEnrollFlag;
    @Schema(name = "singleParentFlag", title = "是否单亲家庭")
    private Boolean singleParentFlag;
    @Schema(name = "houseSchoolVOList", title = "房产学区")
    private List<HouseSchoolVO> houseSchoolVOList;
    @Schema(name = "houseSchoolVOList", title = "户籍学区")
    private List<HouseholdSchoolVO> householdSchoolVOList;
    @Schema(name = "canEnroll", title = "是否满足报名条件 0 否 1是")
    private String canEnroll;
    @Schema(name = "fmJzzFlag", title = "父母是否有居住证")
    private Boolean fmJzzFlag;
    @Schema(name = "gatFlag", title = "是否港澳台")
    private Boolean gatFlag;
    @Schema(name = "showMbFlag", title = "是否可报名民办学校")
    private Boolean showMbFlag;
    @Schema(name = "showMzgFlag", title = "是否可报名民转公学校")
    private Boolean showMzgFlag;
    @Schema(name = "checkEnrollFlag", title = "是否可报名选择的学校")
    private Boolean checkEnrollFlag;
    @Schema(name = "householdFmFlag", title = "是否存在父母户籍")
    private Boolean householdFmFlag;
    @Schema(name = "fgFlag", title = "是否FG人才")
    private Boolean fgFlag;
    @Schema(name = "fgAreaCodeList", description = "FG人才行政区划")
    private List<String> fgAreaCodeList;
    @Schema(name = "encryptStatus", description = "加密状态 0待加密  1加密成功  2加密失败")
    private String encryptStatus;

    @Schema(name = "encryptRemarks", description = "加密备注")
    private String encryptRemarks;

    @Schema(name = "encryptTime", description = "加密时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date encryptTime;

    @Schema(name = "encryptFlag", description = "是否已加密  1是  0否")
    private String encryptFlag;

    @Schema(name = "cleanFlag", description = "是否销毁 1是 0 否")
    private String cleanFlag;

    @Schema(name = "xshkszlx", title = "学生户口所在类型：1-新生和父母都在同一户口，2-新生和父母未在同一户口")
    private String xshkszlx;

    @Schema(name = "updateTime", title = "更新时间")
    private Date updateTime;

}
